home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / ip / ka9q / aztecnos.arc / PROC.H < prev    next >
Encoding:
C/C++ Source or Header  |  1989-03-13  |  1.8 KB  |  62 lines

  1. #ifndef    PHASH
  2.  
  3. #include <setjmp.h>
  4. #include "timer.h"
  5.  
  6. /* Kernel process control block */
  7. #define    PHASH    17        /* Number of wait table hash chains */
  8. struct proc {
  9.     jmp_buf env;        /* Process state */
  10.     char i_state;        /* Process interrupt state */
  11.     struct proc *prev;    /* Process table pointers */
  12.     struct proc *next;    
  13.  
  14.     unsigned short state;
  15. #define    READY    0
  16. #define    WAITING    1
  17. #define    SUSPEND    2
  18.     void *event;        /* Wait event */
  19.     char *stack;        /* Process stack */
  20.     unsigned stksize;    /* Size of same */
  21.     char *name;        /* Arbitrary user-assigned name */
  22.     int retval;        /* Return value from next pwait() */
  23.     struct timer alarm;    /* Alarm clock timer */
  24. };
  25. #define NULLPROC (struct proc *)0
  26. extern struct proc *Waittab[];    /* Head of wait list */
  27. extern struct proc *Rdytab;    /* Head of ready list */
  28. extern struct proc *Curproc;    /* Currently running process */
  29. extern struct proc *Susptab;    /* Suspended processes */
  30. extern int Stkchk;        /* Stack checking flag */
  31.  
  32. #if    defined(__STDC__) || defined(__TURBOC__)
  33. struct proc *newproc(char *name,unsigned int stksize,void (*pc)(),int iarg,void *parg);
  34. struct proc *mainproc(char *name);
  35. void killself(void);
  36. void killproc(struct proc *pp);
  37. void psignal(void *event,int n);
  38. void chkstk(struct proc *pp);
  39. void suspend(struct proc *pp);
  40. void resume(struct proc *pp);
  41. void alert(struct proc *pp,int val);
  42. int pwait(void *event);
  43. void chname(struct proc *pp,char *newname);
  44. #else
  45. struct proc *newproc(),*mainproc();
  46. void killself(),killproc(),psignal(),chkstk();
  47. void suspend();
  48. void resume();
  49. void alert();
  50. int pwait();
  51. void chname();
  52. #endif
  53. int ps();
  54.  
  55. /* Stack background fill value for high water mark checking */
  56. #define    STACKPAT    0x55
  57.  
  58. /* Value stashed in location 0 to detect null pointer dereferences */
  59. #define    NULLPAT        0xdead
  60.  
  61. #endif    /* PHASH */
  62.